{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Du Machine Learning pour de vrai ?\n", "\n", "Jusqu'ici on a vu plusieurs techniques de machine learning, en particulier :\n", "* des arbres de décision, à partir desquels on peut construire des forêts aléatoires, qui sont une technique d'apprentissage supervisé, permettant de faire de la classification ;\n", "* du clustering, qui permet de regrouper ensemble les points qui se ressemblent le plus ;\n", "* de la projection en espace de plus faible dimension, permettant de visualiser nos points ;\n", "* de la propagation de labels, qui permettent de donner des labels à l'ensemble de nos données à partir d'un petit ensemble de points correctement labellisés.\n", "\n", "Mais on n'a utilisé ces techniques que sur des datasets synthétiques, très simples, et parfois peut-être un peu trop simples.\n", "On va donc voir comment on peut essayer d'utiliser ces techniques pour analyser un jeu de données, on va donc essayer de :\n", "* représenter nos données, malgré leur dimension trop importante pour être représentées directement ;\n", "* regrouper des points ensemble, et voir si on arrive à en dire quelque chose ;\n", "* trouver les paramètres (profondeur des arbres, nombre d'arbres, etc.) qui permettent de prédire des choses à partir de nos données.\n", "\n", "Bien sûr, ces techniques ne sont pas les seules qui existent, ni nécessairement celles qui sont les plus efficaces.\n", "En revanche, elles sont toutes basées sur des méthodes de graphes, en construisant une représentation sous forme de graphe de nos données.\n", "(Et en fait, elles donnent très souvent de très bons résultats ! :) )" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "import seaborn as sns ; sns.set()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Jeu de données\n", "\n", "Cette fois, on va essayer d'apprendre des choses sur des données réelles.\n", "On dispose d'un jeu de données dont chaque ligne représente une enregistrement musical, dont ont été extraite une série de mesures, ainsi que le genre musical.\n", "\n", "Notre objectif final est d'essayer de prédire ce genre musical à partir des autres variables.\n", "\n", "Contrairement aux jeux de données synthétiques qu'on a utilisés jusqu'ici, on va d'abord essayer de comprendre à quoi ressemblent nos données." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Chargement et premières observations\n", "\n", "Commençons par charger nos données à l'aide de la librairie `pandas`." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "data = pd.read_csv(\"dataset.csv\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On peut ensuite regarder la répartition des valeurs de chacune des variables." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
file_namezero_crossingspectral_centroidspectral_rolloffspectral_bandwidthchroma_frequencyrmsedeltamelspectogramtempo...mfcc11mfcc12mfcc13mfcc14mfcc15mfcc16mfcc17mfcc18mfcc19label
count17421742.0000001742.0000001742.0000001742.0000001742.0000001742.0000001.742000e+031742.0000001742.000000...1742.0000001742.0000001742.0000001742.0000001742.0000001742.0000001742.0000001742.0000001742.0000001742
unique1742NaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaN6
top01. Aaj Sraboner Amontrone.mp3NaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNnazrul
freq1NaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaN312
meanNaN215007.4655572015.7004684100.4262112043.5600090.3053850.171471-1.743660e-098.522913123.112315...0.117813-5.085212-1.104625-4.488481-0.222948-4.6361000.331630-4.160293-0.704487NaN
stdNaN89920.930842721.6964801597.279461666.2443230.0724640.0751681.393930e-077.37473321.849677...5.9856465.2532805.6438914.6823044.6599304.5157594.4474364.5310114.433841NaN
minNaN0.0000000.0000000.0000000.0000000.0000000.000000-1.676001e-060.00000073.828125...-25.692529-24.642862-26.359570-23.886369-20.935224-21.520218-17.205040-24.743798-16.665104NaN
25%NaN152359.0000001533.5070502962.0497021699.0977220.2495910.118410-6.728298e-083.576854107.666016...-3.046898-8.325668-3.995158-7.407150-2.824771-7.600435-2.115535-6.914308-3.256649NaN
50%NaN196971.5000002033.9647454226.8897802223.5732710.2946760.1606421.617425e-106.477533123.046875...0.643217-4.750612-0.513353-4.5375350.162360-4.9089120.495084-4.428667-0.535849NaN
75%NaN257056.2500002495.0773025258.4936962532.0939620.3518390.2142496.924068e-0811.528968135.999178...3.916396-1.7350952.440787-1.5978142.756847-2.0712203.124587-1.8304022.015320NaN
maxNaN757737.0000005323.0869708810.8772613252.2092610.6166200.6288266.417627e-0783.923833184.570312...20.07756814.95820816.89101324.02098320.45189419.34729319.91584221.32297820.967689NaN
\n", "

11 rows × 31 columns

\n", "
" ], "text/plain": [ " file_name zero_crossing spectral_centroid \\\n", "count 1742 1742.000000 1742.000000 \n", "unique 1742 NaN NaN \n", "top 01. Aaj Sraboner Amontrone.mp3 NaN NaN \n", "freq 1 NaN NaN \n", "mean NaN 215007.465557 2015.700468 \n", "std NaN 89920.930842 721.696480 \n", "min NaN 0.000000 0.000000 \n", "25% NaN 152359.000000 1533.507050 \n", "50% NaN 196971.500000 2033.964745 \n", "75% NaN 257056.250000 2495.077302 \n", "max NaN 757737.000000 5323.086970 \n", "\n", " spectral_rolloff spectral_bandwidth chroma_frequency rmse \\\n", "count 1742.000000 1742.000000 1742.000000 1742.000000 \n", "unique NaN NaN NaN NaN \n", "top NaN NaN NaN NaN \n", "freq NaN NaN NaN NaN \n", "mean 4100.426211 2043.560009 0.305385 0.171471 \n", "std 1597.279461 666.244323 0.072464 0.075168 \n", "min 0.000000 0.000000 0.000000 0.000000 \n", "25% 2962.049702 1699.097722 0.249591 0.118410 \n", "50% 4226.889780 2223.573271 0.294676 0.160642 \n", "75% 5258.493696 2532.093962 0.351839 0.214249 \n", "max 8810.877261 3252.209261 0.616620 0.628826 \n", "\n", " delta melspectogram tempo ... mfcc11 \\\n", "count 1.742000e+03 1742.000000 1742.000000 ... 1742.000000 \n", "unique NaN NaN NaN ... NaN \n", "top NaN NaN NaN ... NaN \n", "freq NaN NaN NaN ... NaN \n", "mean -1.743660e-09 8.522913 123.112315 ... 0.117813 \n", "std 1.393930e-07 7.374733 21.849677 ... 5.985646 \n", "min -1.676001e-06 0.000000 73.828125 ... -25.692529 \n", "25% -6.728298e-08 3.576854 107.666016 ... -3.046898 \n", "50% 1.617425e-10 6.477533 123.046875 ... 0.643217 \n", "75% 6.924068e-08 11.528968 135.999178 ... 3.916396 \n", "max 6.417627e-07 83.923833 184.570312 ... 20.077568 \n", "\n", " mfcc12 mfcc13 mfcc14 mfcc15 mfcc16 \\\n", "count 1742.000000 1742.000000 1742.000000 1742.000000 1742.000000 \n", "unique NaN NaN NaN NaN NaN \n", "top NaN NaN NaN NaN NaN \n", "freq NaN NaN NaN NaN NaN \n", "mean -5.085212 -1.104625 -4.488481 -0.222948 -4.636100 \n", "std 5.253280 5.643891 4.682304 4.659930 4.515759 \n", "min -24.642862 -26.359570 -23.886369 -20.935224 -21.520218 \n", "25% -8.325668 -3.995158 -7.407150 -2.824771 -7.600435 \n", "50% -4.750612 -0.513353 -4.537535 0.162360 -4.908912 \n", "75% -1.735095 2.440787 -1.597814 2.756847 -2.071220 \n", "max 14.958208 16.891013 24.020983 20.451894 19.347293 \n", "\n", " mfcc17 mfcc18 mfcc19 label \n", "count 1742.000000 1742.000000 1742.000000 1742 \n", "unique NaN NaN NaN 6 \n", "top NaN NaN NaN nazrul \n", "freq NaN NaN NaN 312 \n", "mean 0.331630 -4.160293 -0.704487 NaN \n", "std 4.447436 4.531011 4.433841 NaN \n", "min -17.205040 -24.743798 -16.665104 NaN \n", "25% -2.115535 -6.914308 -3.256649 NaN \n", "50% 0.495084 -4.428667 -0.535849 NaN \n", "75% 3.124587 -1.830402 2.015320 NaN \n", "max 19.915842 21.322978 20.967689 NaN \n", "\n", "[11 rows x 31 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.describe(include=\"all\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On a donc un jeu de données avec 1742 lignes et 31 colonnes, c'est à dire 1742 oservations de 31 variables différentes.\n", "\n", "Les variables ont des échelles assez différentes (il suffit de regarder la ligne `mean`), on va voir si ça nous pose des problèmes plus tard.\n", "\n", "La variable `file_name` contient 1742 valeurs différentes.\n", "En fait, c'est simplement le nom des fichiers correspondant à chacune des musiques... \n", "pas très intéressant, on enlève !" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "data = data.drop([\"file_name\"], axis=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question 1.** Affichez le tableau récapitulatif comme ci-dessus et vérifiez que la variable `file_name` a bien été enlevée." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Corrélations entre les variables\n", "\n", "Avant d'essayer de faire quelque chose avec nos variables, on peut regarder si elles sont corrélées entre elles.\n", "La corrélation entre deux variables est une mesure statistique définie ainsi :\n", "$$ Corr(X, Y) = \\frac{E((X-E(X))(Y-E(Y))}{\\sigma_X \\sigma_Y}, $$\n", "où $\\sigma_X$ et $\\sigma_Y$ sont les écart-types de $X$ et $Y$.\n", "\n", "C'est en vait la covariance de $X$ et $Y$, normalisées par leurs écart-types.\n", "\n", "Ce qu'il faut retenir, c'est surtout que c'est une valeur entre $-1$ et $1$, et que plus elle est proche de $-1$ ou de $1$, plus les variables sont corrélées.\n", "A priori, quand la corrélation entre deux variables est importante, avoir les deux variables n'apporte pas beaucoup plus d'information que d'avoir une seule des deux." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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/PnzMRgMnD9/nscff5z8/HynWkyVlJSQlZVFSUkJ0dHR9OrVix49evDkk08yYcIEoGqNt7S0NNLT0wEoLS3llltuYezYsXz88cekpaWRnZ3Njh07yMjI4KOPPqJdu3ZMmTLFMU7v3r1ZuHAhTzzxBNu2beOWW25h27Zt3HfffXz33XfcfvvtHD9+3LH98ePHefnll1myZAldu3ZlwYIFjtcmT56MyWQiOzsbg8HgeP6XX37hX//6FxqNhqFDh1JQUMDdd9992T8LIYQQwqW5wHRnUVEREydOpLS0FB8fH1JTUwkMDLxgmxdeeIGdO3c6Hu/cuZN33nmH/v37M2fOHEwmE+3bV3Urue2225g8eXKdHNslE7gePXrw22+/MXXqVEJCQujbty8A1113naPqFBUVxcsvv0x5eTkbN25kx44djnXS7HY7ZWVlAGzatImHHnoIL6+qRS3btKl9kdfo6GjH9zabjZkzZ/L1119jt9spKSlhx44dTiVwDz74IADt2rWjb9++fPHFF/To0YP8/HxMJhNnzpypNl3r6elJv379AByVLoAvvviCvn370q5dOwCGDx9Obm4uUPUGjRkzBovFwvbt23nhhRdYt24d/v7+dO/enZZ/WYjym2++4YYbbnBUKYcPH05aWlqt5zJgwAA8PKraVN1www3s3btXEjghhBCiDk2ePJm4uDiioqLIycnhlVdeYfHixRds83uPdoAdO3YQHx/PPffc43guOjraUSSqS5dM4Dp37szatWvZtm0b+fn5pKenk5ycfNHt7XY7MTExjB49+ooPztPT0/H9okWLKCsrY+nSpXh4ePDyyy9TUVGhvG+73Y5Go+HAgQO8/vrrLFu2jM6dO7N9+3bGjx/v2E6v/2Opaq1W60jwamsh26JFC4xGI2vWrMHPz48777yT1NRUOnToUOONDirtaH9P3gB0Oh22Bu5AIIQQQtSreppCLSsrcxSW/szb2xtvb2/H4+PHj/PTTz+xaNEiAAYPHsz06dM5ceIEvr6+Ne572bJlDBky5ILcob5c8iaGw4cPo9PpGDBgAC+++CInTpzg1KlT7Nmzhy+//BKourase/fueHl5ERERQU5ODocPHwaqKmc//PADAP369WPJkiWUl1e1Tzl58iQAXl5ejucu5vTp0/j5+eHh4cGRI0f49NNPnT7ZlStXAnDixAny8/MJ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18t+G5osetYETZo0iYKCAlJTU51O3oQQQogmoRlVy+pDs6zAbd68mTfffLPa888//7zjLter2X+vGep0TAu92l+vOm3D/gIaWldceqMadFz/rlLctuAXlOJC//uy0zHr7khRGqv/RG+luE2vlynFdfV27nrY3x0q81KKa+Oh9p57ejpfWTGb1e72Vv398WipFqfRNOw/6zr3hvs9t51XayB0/rxOKc6jhdp7UFKiVin0baNWwS4tdX62w8tL7XcHoPvP/1GOvVxnP5haL/ttObz6Qv5NUbOswPXp00cSNSGEEEI0W80ygRNCCCFEEydTqLWq02b2QgghhBCi/kkFTgghhBCuRypwtZIEroFZrVZH2y4hhBBCXIR0YqiVZBINwGg08o9//IPNmzdz++23c/jwYfR6PcXFxezbt497772Xfv36MWfOHA4fPkx8fDzx8fFUVlYybdo0tm3bhl6vx9PTk+zsbKDqTtuMjAwsFgvu7u68+OKL3HLLLY17okIIIYRoEJLANZDKykr+/e9/AzBx4kR++eUX3nvvPWw2GxEREZw+fZr333+fY8eOMXDgQB588EH27NnD1q1byc3NRavVOtp77d27l3nz5rFw4UK8vLz45ZdfePLJJ8nLy2vEMxRCCCHqkEyh1koSuAYydOiFa68NGDAAvb5qTakuXbrQp08ftFot/v7+eHt7c/jwYTp37ozNZuOll14iNDSUfv36AbBlyxb27t3Lww8/7Nif1WqlpKSEdu3UVkQXQgghRNMhCVwD8fT0vOCxh4eH43udTlftsc1mo1WrVqxZs4bCwkK2bt1KWloaK1euBOCee+5h5syZDXPwQgghRENrfn0G6pQsI+LCTpw4wblz5wgPD2f8+PG0atWKffv2cffdd7NlyxZ++eUXx7bfffddIx6pEEIIUcekmX2tpALnwg4dOsTLL7+M1WrFZrMRHh7OLbfcglar5Y033uCll17i3LlznD9/nttuu42bbrqpsQ9ZCCGEEA1AErgGsHPnzgsep6Rc2NPy95sbfrdx40bH9ytWrKhxn2FhYYSFhdXREQohhBAuphlVy+qDTKEKIYQQQjQxUoETQgghhOuRhXxrJQncVchi0zkdc+6s8zFXQrU0XHqmhVLc3uAXlOLu/EHtTuAvFMbzURoJvk45rhTXRqt2B9gps9p7YNBZleJslRqluOOn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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(9, 8))\n", "sns.heatmap(data.corr(method=\"pearson\"), ax=ax)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On remarque que les variables `spectral_centroid`, `spectral_rolloff`, `spectral_bandwidth` et `mfcc1` sont très corrélées.\n", "De même, `rmse` et `melspetrogram` sont également très corrélées.\n", "\n", "On va donc enlever les variables qui font doublon, et générer un dataset, avec les features dans une variable $X$, et les labels dans un variable $y$." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "df_removed = data.drop([\"spectral_rolloff\", \"spectral_bandwidth\", \"mfcc1\", \"melspectogram\"], axis=1)\n", "\n", "X = df_removed.loc[:, df_removed.columns != \"label\"]\n", "y = df_removed[\"label\"]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Enlever les variables trop corrélées n'est pas inspensable, et aura a priori un impact limité sur la qualité de nos prédictions en utilisant des arbres de décision.\n", "Souvenez vous : les arbres de décision apprennent des questions sur les valeurs des variables.\n", "Ces questions sont de la forme $X_i < a$, où $a$ est un seuil appris lors de l'entraînement.\n", "\n", "Dans ce cas, on peut raisonnablement s'attendre à ce qu'avoir une variable en double n'ait qu'un effet limité sur le résultat final, car répondre à la question sur une variable ou sur une autre devrait donner des résultats proches.\n", "Cela pourrait en revanche ralentir l'entraînement car l'ensemble des questions possibles serait inutilement grand." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pour l'affichage par la suite, on va garder en mémoire une variable `labels` avec des numéros qui permettront d'afficher les couleurs sur nos dessins :" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "music_styles = np.unique(y)\n", "music_style_encoding = {m: i for i, m in enumerate(music_styles)}\n", "labels = np.array(list(map(music_style_encoding.get, list(y))))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Représentation des données ?\n", "\n", "On y voit un peu plus clair, et on a pu enlever les variables qui nous paraissent les moins utiles.\n", "On va essayer de représenter nos données comme on a déjà essayé de le faire dans les TP précédents.\n", "\n", "Évidemment, on ne va pas tout recoder, utilisons `SpectralEmbedding` :" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "from sklearn.manifold import SpectralEmbedding\n", "\n", "embedding = SpectralEmbedding(n_components=2)\n", "X2 = embedding.fit_transform(X)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY8AAAD7CAYAAACSXhiEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA8EElEQVR4nO3deXwU9f3H8dfMbO4LEkJIuEHBcCMieASvhEShUpCIoKgIaKsWpRX1Zy0KWitqtYh3FY+iArEFgSIgFUVERRC5IiJHBHIQSIDcx87M748AErK7IWR3djf5PB8PWjffIfv+spt89vudme9XMU3TRAghhGgA1dsBhBBC+B8pHkIIIRpMiocQQogGk+IhhBCiwaR4CCGEaDApHkIIIRpMiocQQogGs3k7gFWOHi3FMPzjlpaYmHAKCkq8HcNS0ufmQfrsP1RVoWXLMKftzaZ4GIbpN8UD8Kus7iJ9bh6kz02DTFsJIYRoMCkeQgghGkyKhxBCiAZrNuc8hLCKYdfJ2fQtn3/7FuXsowobFMSjq1WU6aGUG+Hopz63qSgGBAaV0KpVDoO3dyPOaEfoXb2J6H0ZWkCIV/sihDNSPIRohLKiQta+9yg7D5UTQDXnV5ZyoFUF+4u6YxKOQT9AqfmjnzxpqtT6HqYKldXhZOd24/sLvqF99TFsq2zoq00ORYSjVcTSPrsb4VcNoc+116GqmsW9FKIupbksyV5QUOI3VzzExkZw+HCxt2NYyl/6XF1ewRf/eoSDRZkcKOtAZVWEg6NMzm1G2CSACi5r8fmpr+gKlAdCWGXt746hoUZ25eKRLxIZ1/4cnss7/OV1did/7bOqKsTEhDttl5GHEPXQdZ1N/3qDgrz3sNmKKNUj2Fs8GMPtPz4K1QRjmAqqUvNBRzVrCsfpYxW7aeOn8l4cKYrj8zn/wKZU0TmqgORxf6FtQqKbMwnhmBQPIZzYuX0dX2S8wREzGE0xiA+MIkErIqviPAwPXmuiYJ7237WZJmwuvoQyI+xUq90M4udj8Rx4dTaBSiWtg+1ce+sM4tp18VhGIaR4CHGGhUteY9uGnZhoQCwnf0nvKQ/nqL0VJXoknrlQ0SRSO4qinP6V2gXkuN6yVuH4lUKFGU6FGU5Rmcmc116mRVgOF7e/nMvG/g5Nk/Mkwr2keAgBGKbB8qVT2JafSWlWf0DjzF/QBjYKq1sRrhVTQUid9tMp2DFP/XiZ1C0DdalqJT3CN572fHX/RpnufA769GcHOF7ahjV7t/LlU5Ox2VSuSL6RwQOHnsXfF6J+UjxEs6brOu+9OZ6Eki0EGlBx/Gpc/ZI3UYjQjlOiR2Jw5qf5mummjgG7UYMrOVbRGjAJCT2CVhWJqYUTFVSEcTwIw2xBdWgLyoqr0XQDYvcTFlRK2539qYrcT1HUMfJiqrHZIbbYPJUoVCs9676ZaFRXhVONApUmyz5eyfIln3DFqN9yTf8rGvTvJMSZpHiIZslut/PZ439mt/YLaHZKA6MIUivQCXD591RMIm3HiAk4zK7yHlQYoYBBoGInlmOcHxdJx2v/QtfOF6Kqrqe26rsK55fdm9izdAmB+fuoaLUFU7UTqRUSqFRQZQZT30imhlLr/w1TZc2/l7Bm5bucnxjPbSP+ehbfQ4i65FJdH+Svl/Y1hpV9/vafb7H+l/UUEnHivIaJikG7oCz2V3aGOiOKk0xsSjWDI9egKgaVahBRF0zl0qFjsdka/jmsoX2uKDnO5x/OwF7wOdvKLqLUOP0y4bMpJKermUoLCSwi+cruXJz0AIrS0O/RcPLe9h/1XaorxcMH+eubrTGs6POebet5++N/QUXoia/U/mWpohNlK+SovdUZbTXvm0Clgp6BB+mQOIGBo3/b6DyN7XNZaTFrlz5Lwb517CrtddqoqSFFwCBSO0bPyO9o2fZWLr1p2jnnORvy3vYfUjxOkOLh2zzZ5+rqap558S7Kj7Y88RXHv1xV7HQO/pnDla0pMlueOk5Bp3eMych7nyMgwPW0VkO4s89lFcf5+K2/8svhAsr1sJqxlFn3pL9jNaMQBYi0HWNwrwtIGv2gW3KdSd7b/kOKxwlSPHybp/q8c82HzPvfd5xaIsQFFTvnh2TSJiibAi2U/KCOXDHkPvr2SnJ7LvBcnwt2/synK15n19EyqvSTa2O56vvpV4LV/IyEqccZd9s9dOza363Z5L3tP6R4nCDFw7e5u88VFaW8/uydHK6M42wKB9QUj0si11AWYiMpfR6t23j2bm1Pv86GYfD63BnkZhWddlPj2U5p1fyshERlM23KXAKDQus5/uzIe9t/yPIkotkp/Wkbz77/OnajDWc7baOgc1FVLgk3vkffTn09HdESqqry+0kzANi4+3sWL3sejpy86VHF9b0nNV8vP96W2U9P4oZbb6FL5+ssSC38hYw8fJC/flJpDHf1+ccnfsfXHGBv5QXUXzhq3g/nVx/j0tF3c/7AAY1+/obwxuv8877vWbrkeaoLgwAodXi/ypl0+kd8g71HDDdc9x9sWuA5P7+8t/2HjDxEs2C3VzHv1WRCbJBTepaFQ6vi8m6dSLv571ZE9Annd76QP943j4K8Laz/YBJbjl1EhRFCfcutHK1qReC2CmYU/IaBF1zD9YM9c0Jd+A8Zefggf/2k0hiN6fPu9Rv41/J5Z9zg56x41LwHotoe5o93vu3VNZ984XXeufFzVvz3DY5Ux5/4iqN/Nx0FBTBPXJOloEUW8eiUlwkIbtgoxBf6bDV/7XN9Iw/Zhlb4tU/++SbvLF9wonAop/1x9EHBJJqjTJ50B9N+/54sFghccNGV3P/YB1wSVcWva3CdScVEPXFDpQoo6EWRPPe3e9izaaGleYXvkJGHD/LXTyqNcS59fv1vMzhQWnTiUZ3Fy+sc3yEsn8kPv2fJndRnw9de56qqSp6dPYny47EAKBioGBhoJwrHmQy6h2wjIRCumfbpWT2Hr/XZCv7aZ7lU9wQpHr6tIX2uLi/nm7+msJJBuDq3oWKnQ/AebHYbIya9QMt2ndwT1k189XUuPrKPxfNvI7S0mmJ7JHvKezgpHnCySIdSwT1TpxMVE+fye/tqnz3JX/ss01aiSSnI38vi50ewIyi2niNNwtUiOtiKGf9/C32ucPiyiFadGX/vWtr/5g5K2h/GdHnxQc00YRnBPPvCM2Tu/NaqmMLLpHgIv7Fz/TpeeONZtpb3JKeyk4sjaz4Nd7+4HUMf/hwtyH1LijQnF/eYzKTRq1A67MHxuZDT1RSYD+Yt5N2n7vR4NuF9UjyEX1j94QfMW/4fqAjFRDtxb4KjE+M1J33HXj6MEcNnWh+0iQkObcUTd35Mx8RoFOzUbFHlrJDUjEJ+Lovg8Rl3WRdSeIUUD+Hzvn/tTT7fsQnHy4ycLCA1fwIMeGTa4/RMu9rqmE3a5Jv/zENTH6BvxAYClQpcj0QU7NXhTH9yMlX2KqsiCotJ8RA+LfuTN/hPzvYTjxzPvSuYtAvM4lItn8ee+juhUZHWBWxGwmPaMfKPa+gfsO/EV1wXEKMikqdmTCU7b5+L44S/kuIhfNaWhe/xzleZYLhaWtwkKvAwVxkRXDfjX1bGa5ZsAQH8ZvpyrhlwwYmv1DMCMYN5+6Wnyf9xvRXxhIXcVjz27dvHmDFjSE1NZcyYMWRlZdU5Rtd1ZsyYQXJyMikpKWRkZJxV28svv8ywYcO4/vrrGTVqFF9++aW7YgsftXXFp/z7h62U47pwoBj063oB3R9/x8J04qqRk/ndvffg+hwIgEIF4bz0/kK++H6+RemEFdxWPB577DHGjRvHypUrGTduHNOnT69zzNKlS9m/fz+rVq1iwYIFzJkzh4MHD9bb1qdPHz766COWLFnCU089xdSpU6moqHBXdOFjPt+0nIXrPsFQXa36WnOO4/rLryT55j9bmE6c1K5NFx596HFUqql3CguNT//zHV/v+sKqeMLD3FI8CgoKyMzMZPjw4QAMHz6czMxMCgsLax23fPly0tPTUVWV6OhokpOTWbFiRb1tSUlJhITUbGrTvXt3TNPk2LFj7ogufMyhzz7jy5UZuN6DwwTFzu9H38nFqSMsTCfOFBwRxcwnX4ToMuorIAD/nj2bb7atsySb8Cy3rKqbm5tLXFzcqbWCNE2jdevW5ObmEh0dXeu4hISEU4/j4+PJy8urt+10ixcvpkOHDrRp06ZBGV3dKemLYmMjvB3Bcgc/eZu312+k0ozGVeGICTjOtD8/R8v49lbG84im8jq//rd5PPnsRA7sPnknuqPXT6HY3opPFs4nrGUoV/e/wsqIXtVUXufT+dWS7Bs2bGD27NnMnTu3wX9XlifxbUe+X8VbX22mmmCcFg4TOhap3P7UC9ht/v9v1NRe57tu/wcfzv0zmXtLTyxn4riA6GYQ8197H31CAP269rY6puX89XW2ZHmS+Ph4Dh06hK7rQM3J7/z8fOLj4+scl5OTc+pxbm7uqRGEqzaAzZs3M23aNF5++WW6dOnijtjCR+z6eT3zl7xNNTZcjTgiq2HczIcIiGh6n+KairF3/JXky0/OIDi/mVABMt5+m9zCAxYlE+7mluIRExNDYmIiy5YtA2DZsmUkJibWmrICSEtLIyMjA8MwKCwsZPXq1aSmptbbtnXrVqZOncqLL75Iz5493RFZ+IisjfOZ/94HHLLH4/ztaBIcVsLdj88grGUrK+OJc3BF2oP0Te1GfXejKyi8/MLf2bxzk4XphLu4bVXdPXv28PDDD1NUVERkZCSzZs2iS5cuTJ48mSlTptC7d290XWfmzJl89dVXAEyePJkxY8YAuGy74YYbyM7OJi7u1xU7n3nmGbp3737W+WTayvfY7ZW89Ow4Cko7OF21VcFO5+CDjP/TewSEhFqc0LOa+uv8beZSvsqYT2G1q73kTVB1rr1lDJd1u8TKeJbx19dZlmQ/QYqHb8k5ls2/37yL/GPnOy0cKjoRlHLvH58m5IxRbFPQHF7nDdu/Z8n8edR39ZymlTPlgaeIiWhhXTiL+OvrLEuyC59TePQg/3phOoePnedyn4jO6j7unPjHJlk4mouLe13I+EkTMZ3uUgigoOshvPTcg1RVVloZTzSCFA9hKdM0+e9rt1GqR2A4vdjPoIVWSNr9c4jqfIGTY4S/6N6pJ3fd/ydQXJ8DqdYjeOKJh6yMJhpBioewjGmabHnzPnIrOjopHCYKOqFaMSNHjyE+2v/v4xA1OrRqy9jRN4LiegRiovHe/020Mpo4R1I8hGU+fuZm/vOLRpEehaNfICo6baJ+4q7bx9O1d5r1AYVH9ex7Cf1SL4Z6prB2aS1Y/+xUC5OJcyHFQ1hiwxO38H1x3IlNnBzdQGaiKgZDb3uZmM5DvJBQWOH3IyfTZbDrfc4Blh9X+eTjjyxIJM6VFA/hcXsXPcp25biTz5o1U1VBSjmJPXXOb93Z4nTCancMf4jIlkdwvSMhfPXd12Qf2GNZLtEwUjyERx1ZuYg9uxedmKhwdKmmQdvAX5iUeiljbnrZ6njCSx7807sEYqe+AvLqP2djt9styyXOnhQP4TGlub+wbud0UKBVQD6qw/McMKT/APqM/L31AYVXTX9yNp3th3FZQIwAXnrhbitjibMkxUN4REVJMV//6zeEVRsoQJhWQvugvajo1CxbYaCi00vLpsdvZD+O5uq2J94kiHJcFZAjxyOYtfxNK2OJsyDFQ7idaZqsmHsNpqrXmqjqHLKbCyPW0zFoDx2D9nC5+gM3TP/QazmF99kCApl4719OPHJeQMq/3cp32zdYFUucBSkewu0WrUgnrKrU4RmOcK2ETiG76Ry4lysfWX5qDxjRfCW0iWfIFZe5PEbXbWxf/SDlxcctSiXqI8VDuNWmJQ8Qlvmj03YTKLMpXDZ2CYHBIdYFEz5taMoozusUirPRh4nCniP9yXh2srXBhFNSPITbVPy0g+M71qCZzpfAA0ga9BohHeSSXFHb7ZOeIDTyGI4LiAJo7DbasuSF+6wNJhyS4iHcQq8sZevbD6AHVDhsP3lPcesONxF9yeWWZhP+44GprxFuq0JxsheIgcqWApPtWzdbH07UIsVDNJppmnwydwj50bkYpuO3lKHA8QuH0vfGvzhsFwIgMCCAGyfcR9vwXScKyJkUKglgfsa/KCw6ZHk+8SspHqLR1nw8k825g/i26CrWHU8ms7QPdvPXE+G6AmVRQYy++gUvphT+okvH8+jXZoCLqU8FTIXnX3jSwlTiTFI8RKPsXPNfPtt4nEojFBMNE4386jZklvYDaiYeogtbMuy29V7NKfzL4Ntn0Nf2C863slWgOpAX5023OJk4SYqHOGcHv13PvNWfUff0uMYxewxlRjCBpa3pf08GgQHB3ogo/NjI6R/RUXd8Dq2GQv7eAnbt+tqyTOJXUjzEOakuKuLtpR+eqBuO16yqMELoMfwebAnxFqcTTYGqqtz40F9PPHJyA2FVMP+e9z6G4ej8iPAkKR7inHz1xHgqCcTZRbkGKh0GXk3sgNHWBhNNSlSLlpw3qLWLIxRKjSA+eOYpyzKJGlI8RIPNf/T3rA7q6vwA06RnS43B18y0LpRosm7/zUNorYtxtXzJzuJj7P9hm5Wxmj0pHqJBVv7nKbYTSs1bx9GowyTINBkz9RmLk4mm7LF7XiM46hBOC4hi8u5Hb6LruqW5mjMpHuKslR8uZPMPrjbnMVExuPPmCaiqvLWE+6iayk2pd7k4QqESG6/PudWyTM2d/ISLs/bxS7dQYrTA2YgjTDnOXR3OJ65nb4uTiebgvD5J9IyKcT57BeQcacOyBbJ8uxWkeIizsmrWFDL1brhateqiEoW2d8rGPcJzbvzjQwQZ4Hz9K/hm249UVlVaGatZkuIh6rXl5xVsLivDwObkCJMgpYxr/v66pblE86NpGrf9bgooVbgqIHOek4s1PE2Kh3BJ13V2rZpGmR7q5AiTKK2ASbfJeQ5hjQ4dO9Clk6v3msKxijJ+3LHOskzNkfy0C5defXc023OvRseGo096Knauje9B/HkXWx9ONFt3TJyN86VLAENl/rezME0XJ0hEo0jxEE7t+v4/5O/thE4Aji7NVbHTgwJ6/e5Br+QTzdvNo8e7aFXQs7oyfYGs4uwpUjyEQ1Ulx/l8xVyn+7oFKJV0CdvBjTPftTiZEDUS+11It66d+XW3mDMYNsydRSzbusLqaM2C24rHvn37GDNmDKmpqYwZM4asrKw6x+i6zowZM0hOTiYlJYWMjIyzalu3bh2jRo2iV69ezJo1y12RhQvfPnM7pm7DdPAWUTBoF7yXTteNQVVlD3LhPbdOuJeICzJxOn1lD2DLFvmd4QluKx6PPfYY48aNY+XKlYwbN47p0+sulbx06VL279/PqlWrWLBgAXPmzOHgwYP1trVv354nn3ySiRMnuiuucKF46VKOhu9Hw0B1sCGPAlR3j+TKvpOsDyfEGW4f9iaEljltr9jVj3XLnrUwUfPgluJRUFBAZmYmw4cPB2D48OFkZmZSWFhY67jly5eTnp6OqqpER0eTnJzMihUr6m3r2LEjPXr0wGZzdqmocJfKinLe2fQ+G4uGsL+yMwYKp3+qU7HTMiSP343+0HshhThNXMu2hPTrBqqjpUkUTFNj5Tc5lByTnQfdyS3FIzc3l7i4ODStZgpD0zRat25Nbm5uneMSEhJOPY6PjycvL6/eNmGd+c+N4rC9DQYaxqkT5SY2pZJo2yG6hW/hrjue8HZMIWp55NqpBHb4GRxuXVuzcM7cN+TkuTs1m4/yMTHh3o7QILGxEZY/565ZEzhQ2cnBzYAquhlAYthWOlVfScc+/T3y/N7os7dJn93nrt/8jVf+OQe9ItJBq8LhojB2//Ail6T82SPP70pTfJ3dUjzi4+M5dOgQuq6jaRq6rpOfn098fHyd43JycujTpw9Qe7Thqs0dCgpKMAz/uOY7NjaCw4eLLX3O6upKFmYdocJ0vHGTgknEoc4kPjfbI9m80Wdvkz67V1xcby7u2Iqvf6rE0TI6Jiq7//cGnfvcjaZa97nZX19nVVVcfuh2y7RVTEwMiYmJLFu2DIBly5aRmJhIdHR0rePS0tLIyMjAMAwKCwtZvXo1qamp9bYJz/vgbxPJNlrjbO2qQKWSAX96wdpQQjTQdbf8lSDV0dIlNSs+7y7pyYtfTPZGtCbHbVdbPf7448ybN4/U1FTmzZvHjBkzAJg8eTLbttVs0jJixAjatWvH0KFDufHGG7nnnnto3759vW0bN25kyJAhvP3228yfP58hQ4bw5Zdfuit6s7f/y/9ywB7pZO0qEwU7/aIPEhLf2fJsQjSEoiiMu3U8GnYUTp5AN6m5wFwjr7otBZ9H8tWW/3kzZpOgmM3k/n2ZtnLMNE0+mpXM1pI+mDi6Z8Pk4oANXP+YZ4u1vw7tG0P67DnL3xzGwRwbB6q6OrhXyaBdlZ07n/6HJeux+evrbMm0lfBf/3n+HraV9HZ4MyBAsFLOZTf+3eJUQjRO2oTFRLQ4iOLw6iuVg2Emn656y/JcTYkUj2bsyI7NbD0acGK66sxzHSYqdgZEhxKTKIseCv+iagFEptyNoTjZfyaogi+12RyvOGxtsCZEikcz9sFHz55YLbcuFTv9QrZy7dTnLE4lhHsMS5xIRGBJ3ZsHVR3Ci6AwhhlfjvNOuCZAikcz9eVLt5Jf3QZnV1cFBZSRlP60taGEcLP09HsIDywFRQetGjDAUCGvHWy7iJAve7J0y0pvx/RLUjyaIdM0WZsfivMtZQ06azqx3WS6Svi3Lhf0o8Pg1jD4C4jLpuY9f9ofQ+Prf0vxOBdSPJqh/710M5VGCI6Lh0mIWkr6tFetjiWER4y5+nGMwGrM/ATOfM8rKCiGwj+XyFptDSXFo5kpL8ohu6gAp0tYY3JF22ACgoKsjCWEx2iqjW4JD4HuePsABYW9321C1x0trCickeLRzGx++W7CtBInrSZxAdlcftdsSzMJ4Wm397yF6ggd08mHJs208/pC2fKhIaR4NCPZG3+isjSMCO0YoVrpaXfgAhjYlGrG3vyo1/IJ4Ul/uO1hp20KKi2y9vHZDrn342xJ8WhGIh5eQUl5ELnV7egeuo3WAbknCohJC1shg1vvpNV5vb0dUwiPaB+XQOdLBjoYfZiYKOwsvZBvln+KYThe1l3UJsWjmfjp5bd5YfAeNoZEsrcskc3Fl6Apdi6PXMWQqBV0jfme5N8v9XZMITxq4nVjCI0uPvWhqUbNlVcGGuVFbfjbx3d5MaH/kOLRDFRVVrIwdxPVBKBjw8BWs0hcVTv2a23Qy3sw5PzHsdnkJLlo2hRF4ZrrR9AtdJvDLZZN00ZZVgVHK52dFxQnSfFoBjY8eid2B0uQGNgoK+xC0rpriEkb5Z1wQlhs8HnDKGyFk3WvAFPh9cwMa0P5ISkeTVzxjq3kRe/B2aW5OirarGHWhhLCy9Jveg/d0W8/1Q5tstlTcszqSH5HikcTt2vhg0Rqxx22qdjpERBNSP/2FqcSwrsSIhNQ+h7BVPWapUswQbVjRh+BVodoWbmQz35Z5O2YPq3Z7GHeHB1c/VcKw7NRFYMLQrfyY1k/TBRMVFTsRCglXPnAE96OKYRX/OW37/BAYBoRR4KhOgCij6CEFhOS1Q61MpAvD/2DSl3h2i6/9XZUnyQjjybKNE2+2vMe5UYQJXo4rQLyGRjxJe2D9hIfcIDE0K2MjexAcHiEt6MK4RWBWgCPJi9mf+fLMTrvJVA3UL++isr9F1B66Hz0H/uz+YPFVFdVejuqT5Li0USt+eAu9mZfwcbiJDYXX8L6oqspM8LoEvIz3UO308FeQbtp070dUwivah0SwSuXTAJTgR39MUzbqf1tDGyUVbTk5bn3ezumT5Li0QRVlZby1c4ASo1wDDR0bFSbQewo7U+ZHopdsTFg7BxvxxTCJ4QGtMB2PALdCHDQqnHkYCh5ufssz+XrpHg0QRv+9n/YzQDOfHlNVHKr2mGElBF8/gDvhBPCx2hqAC3DBztdKhTgn288a1kefyHFo4mxFx7nsP0Qji7NNVGpMELoO1quIhHidPem/A1NsTtpVaisDmHlroWWZvJ1UjyamE3PTkJtuQfTwUurYicusJK2cb28kEwI3xVoC6DLRW1wvlUBfPXpfFn36jRSPJqQgzvXUxSTSZhWTlxgNiq/fpJS0QlWKxh+1yteTCiE77p1xKNoSjWOC4iCkduJeRmy6vRJUjyakMxlk0/9d7eQHXQL3UGEdpRQtZgOgXu5y+hFeHScFxMK4duuHDaYmuLhqICo7Npejt3ubHqreZHi0URs+3DaqZ2ZARQF2gTmMCDiGwZGruM8jtJyxu+9GVEIn3fV4HEEnL8bp9NXpso/lsol7iDFo8nIyV7hsj287TBUzfE2nEKIX90z4p+gOD/3Ef7jdnKOHrAwkW+S4tEElPxrLgrGGWvm1jABA7ho4kMWpxLCP7VqEUertgaORh8aOpFKCQuX/8X6YD5GioefM02TopVrXB7TtdtIi9II0TTcM/E5CKjk9AKiYBCgVtLKlk9swU/klRd5L6APkOLh57bOmUJm3+9RHYyya0YdAZx3/ZOW5xLCnwUEBND26vbEBuSioqOiExuQy4Xh36AqJtFl8OSSd7wd06tkVV0/Vl1ZzuHKz87c4+nUZ6VqQrnqmjctzyVEU3DXZdOYt/VyEsu31PqUrSuwp2MZ8SHvsuJtk7QJ93ktoze5beSxb98+xowZQ2pqKmPGjCErK6vOMbquM2PGDJKTk0lJSSEjI6PRbc3ZF3PHOvy6Qs35vh7H+hLSv6+1oYRoIlRVZeCot8gLaoFpqtjVmsJxIBbyWtkpD6lkW8R8qvXmeemu24rHY489xrhx41i5ciXjxo1j+vS6l7MtXbqU/fv3s2rVKhYsWMCcOXM4ePBgo9qaM710T51RxykmtPzzC5bmEaKpSYxP5LuL/0BWqyh2dIKve0BZCPT/GQbuNGlZVsRnL0/xdkyvcEvxKCgoIDMzk+HDhwMwfPhwMjMzKSwsrHXc8uXLSU9PR1VVoqOjSU5OZsWKFY1qa65WH1iH5nQPZgiwhxEVInt1CNFY0/sMozxQ5WikQqdD0P0ARJVBWCW0PwxV5hccP5rv7ZiWc0vxyM3NJS4uDu3EfQSaptG6dWtyc3PrHJeQkHDqcXx8PHl5eY1qa46OVRTwv533UOXi1btogkztCeEOsSERdPqlI0GVJvEFoJ32mU0zIdAOKxfd5r2AXtJsTpjHxIR7O0KDxMY6HzX8852xaIE6WQnQ9SCcfuufCQT1TadTH/9b/NBVn5sq6bN/GPXwS+xfMARTsde5/UMzwaw6gF6RR5v25zv8+/7Y5/q4pXjEx8dz6NAhdF1H0zR0XSc/P5/4+Pg6x+Xk5NCnTx+g9ojiXNvOVkFBCYbhasV+3xEbG8Hhw8UO2/ScQg5U7YOc88jRNSpb5NOtqJBAA6pV2NGhB9OGPu707/sqV31uqqTPfkSNolvBpRisrdNkABWBJtun/BXtjbqbrPlrn1VVcfmh2y3TVjExMSQmJrJs2TIAli1bRmJiItHR0bWOS0tLIyMjA8MwKCwsZPXq1aSmpjaqrblZ99QLGJsvgf1d4GAnCvYP4GutL2t7w/pe0LW/4yuwhBCNc/XkF6nWlFNnGk0T8qvasL2kP3uO9mPxZT/y3ZdzvZrRSm6btnr88cd5+OGHeeWVV4iMjGTWrFkATJ48mSlTptC7d29GjBjBli1bGDp0KAD33HMP7du3BzjntuakYPdB1kRUgHHaRJVhg4LWmMdao0UV8tvOv/VaPiGaMltQAK0uvo28Te8QUgE7Svtz1N4aUOGoiXG0DR8f/oKBSXd4O6olFNM0/WMup5GawrTV5xNn8Xnrw9gdrW8Ym8MtHVK5YKR/nrjz16F9Y0if/dPG+ybw34v3UP3jRdSdvDFpdYHB/bf8epm8v/bZkmkr4Xk/7v6Wb2LzsGuOCqBJt73t6DZivOW5hGhuDiVdTnVhG5zdZHVkp7Obr5oWKR5+Yu27cyi1nb5jx68CdJVOl/dCVeXlFMLTho2eCHZnM/41P6Mvv/WwlZG8Qn7b+IFjq5eRbbZyuC85pslFuREMSb/V+mBCNFMDE/u7aFU4sq8IXdcty+MNUjz8wI9fPYvTdUgUaJXez8o4QjR7I9KmoTjd7xyqCeE/s++0NpTFpHj4uKI9mygNPUJ0QD7UWY7EoBVHGTTsem9EE6JZGzXc1e0CClsLoyivKLMsj9WkePi4bW8/QHZlezBNNHRUalbwVLEToFRzXU//u5NciKag/6BhtAzMw9now0Thw1lN99yHFA8fdvi1d/if0pM9FRdwxJ6AceLlah2QzXkhPzIkYCPdxv7RyymFaL5unfgwzooHwF4dKqsqrAtkISkePmzJzxupMgMxTtzLaaJhoFFhhJIQeJALb33DywmFaN5i2/ampVqM4wKigBHAfbP8896r+kjx8FFZ7z/B/hCNui+RQpEeRUhRDFGdensjmhDiNKPH/xHnow8F82AUP+XstDKSJaR4+KhdufNRFMdvSAVI7DrO2kBCCIc6np9IbGQJrqavPnz7aesCWUSKhw9avW0ZChAfeBCF2teKKxi0q6wg+vbfeSecEKKO2+9+xkWrgr08hsrycsvyWEGKhw/K/LhmW8tOwT8TqR1DxY6KHQ07IWop17Xv7uWEQojTRYW3gPACXI0+3nz5McvyWKHZbAblLwpyd9OizI4CaIpB/4gNFNmjKNUjCNbKiNQKaT/ldW/HFEKc4Yab7uPfb85z0qqQe0ynuKSEiHD/2pjOGRl5+JjvFz2DccbN5JG248QHHaSFrZBWw57yTjAhhEv9O/UnMOQorkYf789qOuc+pHj4kPxFH7G2xU9sLruI74sv5lBVG04umG8AhWEaA3qM8GpGIYRzD06d7aJV4aBZRFV1lWV5PEmKhw/5YNNnmJkXUVHWiiI9hh/L+rGx+BKqFSgNgfMvftTbEYUQLgSHRtACHeejjwCee7NpLGIqxcNH7P92E0cI4eSSzjUUSo0oNkYlEKD35cIBN3oxoRDibNx23/+5aFUoy27bJFbcleLhI+YvfctJi0LlkY4M6i73dQjhD2Jj44iIycbVuY/n3vmzdYE8RIqHD9i1+3uKTo06zmQSVhZCbOpwq2MJIc7Rb8e6Lg7F+/x/vSspHj5g6bwXXLZf1+lSi5IIIdyhe5veYKvA6ZpXaCxf/U+LU7mXFA8vO/L1aqqMYJyNOmxU0feOsVbHEkI00vDb7nDZ/s1331qUxDOkeHjZjk+fJ9p2GGfzo5f0bWdtICGEWwzuPABCna15pWCURrF+6SKrY7mNFA8vshccQTdMOoTsQ61zeZ9JoFJBavpD3oonhGikW26Y4LJ9xfqvLEriflI8vCjr7+8QndcNm2Ln4oi1tLQdQcFARSc2IIdrWmR7O6IQohEu6D6Y4Ahna14pGJpJpp8WEFnbykvsx0v5vP1i7GHR2Mt60tJWQK+wTagnlmGvIpDB92/0ckohRGONveZW3l78X6ftH36ykCcuvczCRO4hIw8vee/N37I/+yKyy7uSV9WBn8p6833JJRwJ0Whx4BKSWjyMpmnejimEaKTB146gZsE6x6MP07TxY96PVsdqNCkeXlBy+BAHj3XHwIZJTYEwsFGuh1N0vCMdszoTNmG0l1MKIdxlYOduLtvff8P/LtuV4uEF37z6ANVmYJ2vG2gUVCRQPKKLjDqEaEJGTL6TmpGHk/s+qhQqy0ssTtU4UjwsZpomm6pCMR3e1wGqojNwquvrw4UQ/ie8p+sPhB988EeLkriHFA+LrXtpHGVOliJR0GkdlIMWKNcxCNHUPDhmlsv242W7sfvRgolSPCy2+1gRhpNRR7Baxtg7XrE4kRDCCqqq0qFtK5xNXR3J78uK//rPZm+NLh7l5eXcf//9pKSkkJaWxpo1a5weu3DhQlJSUkhOTmbmzJkYhlFv26FDhxg/fjwDBgxg1KhRjY3rVdnT/kywVobq4M2jYOfihAhC2nSyPpgQwhIT73yAMM3JboOmxobNeZZnOleNLh5vvfUWYWFhfPrpp7z22ms8+uijlJaW1jnuwIEDvPTSSyxYsIBVq1bxyy+/sGTJknrbQkNDmTJlCs8991xjo3rdNy2+YG95N3Q0ar95DDTF4JIb7vVWNCGEBTQtgOjehU7bjepgVmxZamGic9fo4vHJJ59w0003AdCpUyd69erF2rVr6xy3cuVKkpOTiY6ORlVV0tPTWb58eb1tERERDBw4kNDQ0MZG9aqfFvyTLeUXUW5G8OuGTzVXX0RoRQzSthAe28mrGYUQnjdu+DxQnZ/b+GLdMgvTnLtGF4+cnBzatm176nF8fDx5eXWHXrm5uSQkJJx6nJCQQG5ubr1tTcUXmZ9i1vnnVlDQ6R6yjaTesoaVEM1BRHA4sTFVODv3oVaV8VPhTqtjNVi9l/WMHDmSnJwch23r1693eyBPiYkJ99pzF67/kmJCHBQPUDGpqoqg8+/G1Pp6bGyEVfF8hvS5eZA+w8S7H+PpGbOoe9WlCcVRzP7iL2TcucKyfOei3uKxaJHrJYMTEhLIzs4mOjoaqBlFDBo0qM5x8fHxtYpQTk4O8fHx9ba5S0FBCYbhfFtIT1r34f1E2iI5pkefuqP8JBOVXu2SOXy4+NTXYmMjaj1uDqTPzYP0uUZ4QBxGtzKUXcEoaPxaRBSUqiBiNifw7Y7NdGl9nuV5T1JVxeWH7kZPW6WlpbFgwQIAsrKy2LZtG0lJSXWOS01NZfXq1RQWFmIYBhkZGVx77bX1tvm7I4W7KQ89TNugA2hK7WXXVey00vLpccfD3gsohPCK8cPuwey4j7rTVwqmofHBguneiHXWGn032sSJE3n44YdJSUlBVVVmzpxJeHhNtZo9ezatW7dm7NixtG/fnrvvvpsbb7wRgMsuu4zrr78ewGWbrutcddVVVFVVUVJSwpAhQ0hPT+cPf/hDY6Nb4qv5YwkFAtUqBoSvZ29FdwqrW6EpOgmBv5Aa3MvbEYUQXpAY05tKLZAQh60qVYdisVdXYQuou5SRL1BM0/TOXI7FvDFtVVVZzucvXsQxeysqjGAibccJ134dvhpAyp+2oyi15z1laN88SJ+bB1d9fv7TZzj6RW6d6WyomZm44Mp+jEu+3cMJHfP4tJVwbtNzt/Jt0ZXsKO3H7vJEvi8ezLaSCzFMBROobBlfp3AIIZqP+67+Eza1ymGbgcLPez7GVz/fS/HwoC/KY6g0g9EJwMCGgY1CewzZlR0BuObmj7ycUAjhTZqmEdMtEqh734eimBhRheTOf8fyXGdDioeHfP/mq5QQxpmX4pnYyKnqQKA9hNDgFl7JJoTwHb+76QnUwAqUWgXExERBz2vLro0bvJbNFSkeHvLdzu1O23RDZcDYNyxMI4TwVTabjS6JCsQfALWaU1dfmRociWd1SAg/bHV9y4Q3SPHwgIObPuJgcCCOll0Hk7blEN7xQqtjCSF81I2XPkTL6DwwVH5dvohT//3Rxyu9F84JKR4e8PmSd51u9oQJV4wYYW0gIYRPC23bkYs2X4jjX8kKVIaRX/Cz1bFckuLhZqWF2ew1OuL4n9akQ3UJ5w0ZanUsIYSP63DnaJft7739vEVJzo4UDzf7+rXxLtsvSWx+6/oIIerX6bwhtc951KJw7FgoVVWOL+v1BikeblRRXo4ZeIjWgTlnXDkBYBChFtF7gv/vSyKE8Ix+A1u6bH/23cetCXIWpHi40TevXA1Ap+DdhKqlaNiBmjtFbYqdwZG+86lBCOF7Rl43HccjDwCFsl8qrIzjkhQPN7IbReimRrURyIXh60kM20LHoJ85PySTwZGfc8nvZH9yIYRzmqbR8fzWOCsgCgovfv0PSzM5I8XDTfI//5LtpX1ZdzyZb4uH8FVRCmV6KJ1DdtMmKBvVNAkMD/N2TCGEjxt/0xSnYw+Akv3vWpbFFSkebjL3i7c5Yo+n5p9UxUBjb8UF5FbW7JDY7SrfXl5ZCOEbgoNCsYeXUnf0UfM46KeerN2+wPJcZ5Li4QYHtn9NSXVL6t4UqLC3ojua3UangeneiCaE8EO/GTcBAiqoKRgni0jNDYNHq1rzzSfeXxdPiocb/G/FE07bqs1ALrz8RQvTCCH83eUdBtGy+1pq1t8+80OpStHxDhw6kuWFZKenEI1i16uxVTi7AsJEU6ppcfkVlmYSQvi/TgnpzleqAF59Z4aFaeqS4tFI//toJjsr+jtt7xBdZmEaIURTccOQ6QSoJ6euzqRgPxZNdXW11bFOkeLRSF9tK6L2QmYnmSQEZnH7FFk9VwhxbiLiXBeH2e8/YlGSuqR4NMKml+7EcLENfNculWha3e0lhRDibNx5u+sVKY7t9d6Nx1I8GmF9dt3dv053xQ3vW5RECNEUhYdFQlAZzqauMGysWeud3zNSPM5R0U9bOKS1wNmeHaFKMcEhURanEkI0NTffPNll+xffrLAoSW1SPM7Rqvf+6rI9rUOgRUmEEE1ZYpcLIagEpyfOKyM5WrjX6lhSPM6FvaqKY6HlOH4xTUKMSi6c/JLVsYQQTdSAPt2dtoXaK/liySQL09SQ4nEOdk2/n0hbIQqGg1aTSwO9d/mcEKLpGTnijxDiaPRhUqZHceBgC3Td9TlYd5PicQ62tP+aoqqWaBhwWgFR0InSjnLZ/8kd5UII9+raeQ+BtmIcLVlyqKIzH7z0F0vzSPFooF3vvMaPuUlkVXbHTiA1L55JkFJGl+CdXGQ/TmBQkLdjCiGamFtGL6FtxM4Tj+peqPPT4UpL80jxaKCFu7djEMCvL15N5a82A2gReYBBw6Z4MZ0QoqkKCAzFsMc7aa35ffT6u87X2XM3KR4NcDw3hwqCcFT1DWwUmS0JvfRKy3MJIZqHIWn3u2w/8HOBNUGQ4tEgi16Z6rI9sXKIRUmEEM1R976XnPgvJzcNonHkaI4lWaR4NIARVOyy/eIHXd/7IYQQjRUU6nof81fftubEeaOLR3l5Offffz8pKSmkpaWxZs0ap8cuXLiQlJQUkpOTmTlzJoZh1Nu2evVqRo0axfDhwxk2bBhz585tbORz8tWcu2gdmOek1SRel9VzhRCe95dHXnbRqlBZ2MKSHI0uHm+99RZhYWF8+umnvPbaazz66KOUlpbWOe7AgQO89NJLLFiwgFWrVvHLL7+wZMmSettiY2N59dVXWbZsGfPnz+fDDz9k48aNjY3dYCWV6whSK2kbuJfal8qZ2Kji9gcetzyTEKJ5UmIKcDx1VWPWS56/cKfRxeOTTz7hpptuAqBTp0706tWLtWvX1jlu5cqVJCcnEx0djaqqpKens3z58nrb+vbtS1xcHAARERF07dqV7OzsxsZukF8+fROVmhnF80N30TdsAy20I4Spx+kavINBUWsIi4mzNJMQovn6023PuGwvznO+2re7NLp45OTk0LZt21OP4+PjycurO72Tm5tLQkLCqccJCQnk5ubW23a6PXv28MMPPzB48ODGxm6Qnze/UOtxy4BC+kVsZGDketoFH6Bjx3sszSOEaN5aRLcGdJyfOFf4dtP/PJqh3vI0cuRIcnIcn71fv3692wM5k5+fz91338306dNPjUQaIiYm/Jyet6KiAlN1tnZuzf9ccc+D5/S9XYmNjXD79/R10ufmQfrsHhcMaM3OTc4vzV26cgHD037r9uc9qd7isWjRIpftCQkJZGdnEx0dDdSMIgYNGlTnuPj4+FpFKCcnh/j4+HrbAAoKCpgwYQKTJk3iuuuuqy+yQwUFJRiG8zlCZ/733ECX7QFVIRw+7PoqrIaKjY1w+/f0ddLn5kH67D63jHyERzf9iZqPsWd+vFWgLIIDBw4THBx8Tt9fVRWXH7obPW2VlpbGggULAMjKymLbtm0kJSXVOS41NZXVq1dTWFiIYRhkZGRw7bXX1tt29OhRJkyYwM0330x6enpj4zaYgeurqAb/aZ1FSYQQojZbRJHL9mfnP+ax52508Zg4cSJFRUWkpKRw1113MXPmTMLDa6rV7Nmz+fDDDwFo3749d999NzfeeCNDhw6lXbt2XH/99fW2vfHGG2RlZbFgwQJGjBjBiBEj+Pe//93Y2Gfl57l/pKA6lk3Fl7Du+DVsLr6Y4/YWwIlab3DOVV0IIRrrwXtfcNpmAhW7PbfelWKaZsPncvzQuUxbvf/ENfxU2QeDX/chV9HpE/4dUbajtO15Kz2ufcjdUWVo30xIn5sHT/f5kRn3olY7XjYJTLpe1IYJv53W4O/r8Wmrpir34EF2V/aoVTgADDT2lNdszOKJwiGEEA1x3ZgbXdzxAXs21r1y1R2keDjx9bvpVON4K9lSPYLgUpmuEkJ43+UXDEGpdePy6U7s95Hn/nvjpHg4kVnRz2lboFLJRQ/UvRFSCCG8IqDKZfOcl1zfVHgupHg4sHj6xVSYoTibQ2wfuI+QsDCrYwkhhENT751RzxHuv+NciocDO+njsr1PcKhFSYQQon4xMTHgcuoKpr8wwa3PKcXDgVIjAmejjgAq6D/tP1ZHEkIIl+K6aS7bjYKWbn0+KR4OOb92oV3wbgtzCCHE2fnDrc+e+C/nJ84XzP+7255PiocDUdpRHL8ABpcPn2V1HCGEODtq3e0wTrdt+0H3PZXbvlMT0j50Oyo6cHKzKhPQ6Rn6Hd379fNeMCGEcOHJma/Vc4Sj6fhzI8XDgTEPbaJn5Oe0CTxImFpEbEAuvcPXMfYRWcdKCOHrnJ04B7C77Vk8v2OInxrz4A/ejiCEEA0XcQiK21B7td2aYvLkky+67Wlk5CGEEE3Ikw+9D4FHTjz6dRTStpf7pqxARh5CCNHkPDn9XY8/h4w8hBBCNJgUDyGEEA0mxUMIIUSDSfEQQgjRYM3mhLmquvdKA0/zt7zuIH1uHqTP/qG+zM1mG1ohhBDuI9NWQgghGkyKhxBCiAaT4iGEEKLBpHgIIYRoMCkeQgghGkyKhxBCiAaT4iGEEKLBpHgIIYRoMCkeQgghGkyKh0XKy8u5//77SUlJIS0tjTVr1jg9duHChaSkpJCcnMzMmTMxDKPettWrVzNq1CiGDx/OsGHDmDt3rsf7VB9P9/nQoUOMHz+eAQMGMGrUKI/3x5l9+/YxZswYUlNTGTNmDFlZWXWO0XWdGTNmkJycTEpKChkZGY1u8yZP9nndunWMGjWKXr16MWvWLCu6c1Y82eeXX36ZYcOGcf311zNq1Ci+/PJLK7rUOKawxJw5c8xHHnnENE3T3Ldvn3nppZeaJSUldY7bv3+/mZSUZBYUFJi6rpt33HGHuWjRonrbfvjhBzMvL880TdMsKioyk5OTze+++86Svjnj6T4XFRWZGzZsMD/77DNz5MiRVnWrjvHjx5uLFy82TdM0Fy9ebI4fP77OMYsWLTLvuOMOU9d1s6CgwExKSjIPHDjQqDZv8mSfs7KyzB07dpjPP/+8+fTTT1vXqXp4ss9r1641y8rKTNM0zR9//NEcMGCAWV5eblHPzo2MPCzyySefcNNNNwHQqVMnevXqxdq1a+sct3LlSpKTk4mOjkZVVdLT01m+fHm9bX379iUuLg6AiIgIunbtSnZ2tkW9c8zTfY6IiGDgwIGEhoZa16kzFBQUkJmZyfDhwwEYPnw4mZmZFBYW1jpu+fLlpKeno6oq0dHRJCcns2LFika1eYun+9yxY0d69OiBzeY767Z6us9JSUmEhIQA0L17d0zT5NixY9Z18BxI8bBITk4Obdu2PfU4Pj6evLy8Osfl5uaSkJBw6nFCQgK5ubn1tp1uz549/PDDDwwePNidXWgwK/vsLbm5ucTFxaFpGgCaptG6des6Gc/sx+n/Fufa5i2e7rMvsrLPixcvpkOHDrRp08YTXXEb3yntfm7kyJHk5OQ4bFu/fr1lOfLz87n77ruZPn36qZGIp/hKn4VoKjZs2MDs2bN94pxlfaR4uMmiRYtctickJJCdnU10dDRQ8ylk0KBBdY6Lj4+v9Qs5JyeH+Pj4etugZmg9YcIEJk2axHXXXdeo/pwNX+izt8XHx3Po0CF0XUfTNHRdJz8/v07Gk/3o06cPUPtT6Lm2eYun++yLrOjz5s2bmTZtGq+88gpdunSxqGfnTqatLJKWlsaCBQsAyMrKYtu2bSQlJdU5LjU1ldWrV1NYWIhhGGRkZHDttdfW23b06FEmTJjAzTffTHp6unUdc8HTffYFMTExJCYmsmzZMgCWLVtGYmLiqYJ5UlpaGhkZGRiGQWFhIatXryY1NbVRbd7i6T77Ik/3eevWrUydOpUXX3yRnj17Wtu5c+XtM/bNRWlpqfmHP/zBTE5ONocOHWp++umnp9r+8Y9/mB988MGpxx9++KF5zTXXmNdcc405ffp0026319v29NNPm7179zavv/76U38++ugj6zrogKf7bLfbzaSkJHPQoEFmz549zaSkJPPFF1+0roMn7N692xw9erQ5dOhQc/To0eaePXtM0zTNSZMmmVu3bj2Vdfr06af6MX/+/FN//1zbvMmTff7uu+/MpKQks3///ma/fv3MpKQkc+3atdZ20AFP9nnUqFHmoEGDav387ty509oONpDsJCiEEKLBZNpKCCFEg0nxEEII0WBSPIQQQjSYFA8hhBANJsVDCCFEg0nxEEII0WBSPIQQQjSYFA8hhBAN9v/CQDscPWPA2wAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(X2[:, 0], X2[:, 1], c=labels, cmap=\"Dark2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question 2.** Que dire de cette représentation ? Est-elle satisfaisante ?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Réponse :*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "En fait c'est dû aux différences d'échelles des données... ça fait n'importe quoi parce que des variables sont vraiment beaucoup plus grandes que d'autres.\n", "\n", "On va normaliser les données :" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "from sklearn.preprocessing import scale\n", "\n", "Xscaled = scale(X)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On peut afficher à nouveau le descriptif de nos variables :" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
zero_crossingspectral_centroidchroma_frequencyrmsedeltatempomfcc0mfcc2mfcc3mfcc4...mfcc10mfcc11mfcc12mfcc13mfcc14mfcc15mfcc16mfcc17mfcc18mfcc19
count1.742000e+031.742000e+031.742000e+031.742000e+031.742000e+031.742000e+031.742000e+031.742000e+031.742000e+031.742000e+03...1.742000e+031.742000e+031.742000e+031.742000e+031.742000e+031.742000e+031.742000e+031.742000e+031.742000e+031.742000e+03
mean2.826862e-16-1.948626e-17-1.574197e-168.030316e-17-1.657049e-18-7.277314e-162.516803e-161.325958e-167.459908e-171.218569e-16...-4.336410e-179.005426e-172.137594e-16-2.813160e-162.272070e-171.666609e-169.630006e-17-5.697700e-17-1.165511e-16-9.572646e-17
std1.000287e+001.000287e+001.000287e+001.000287e+001.000287e+001.000287e+001.000287e+001.000287e+001.000287e+001.000287e+00...1.000287e+001.000287e+001.000287e+001.000287e+001.000287e+001.000287e+001.000287e+001.000287e+001.000287e+001.000287e+00
min-2.391759e+00-2.793805e+00-4.215485e+00-2.281819e+00-1.201451e+01-2.256250e+00-1.159683e+01-4.554401e+00-4.679039e+00-4.716782e+00...-4.554122e+00-4.313277e+00-3.724010e+00-4.476025e+00-4.143998e+00-4.446038e+00-3.740006e+00-3.944229e+00-4.544111e+00-3.600761e+00
25%-6.969062e-01-6.683307e-01-7.701652e-01-7.060944e-01-4.703116e-01-7.071379e-01-6.171237e-01-6.065826e-01-3.884310e-01-5.633696e-01...-5.776729e-01-5.288686e-01-6.170215e-01-5.122998e-01-6.235195e-01-5.584997e-01-6.566306e-01-5.503997e-01-6.079892e-01-5.757751e-01
50%-2.006334e-012.531469e-02-1.478245e-01-1.441053e-011.367321e-02-2.995879e-031.308499e-011.638622e-011.296066e-029.521434e-02...6.462766e-028.780251e-026.371191e-021.047931e-01-1.047961e-028.270927e-02-6.043073e-023.676296e-02-5.924763e-023.804522e-02
75%4.677538e-016.644268e-016.412391e-015.692530e-015.093852e-015.899658e-017.070439e-017.036774e-015.201561e-016.215948e-01...6.500392e-016.347975e-016.379022e-016.283661e-016.175373e-016.396343e-015.681474e-016.281729e-015.143577e-016.135962e-01
max6.037364e+004.584110e+004.296243e+006.086163e+004.617816e+002.813572e+002.832922e+003.292609e+004.427734e+003.548240e+00...3.347441e+003.335561e+003.816506e+003.189432e+006.090517e+004.438002e+005.312568e+004.404748e+005.625806e+004.889305e+00
\n", "

8 rows × 25 columns

\n", "
" ], "text/plain": [ " zero_crossing spectral_centroid chroma_frequency rmse \\\n", "count 1.742000e+03 1.742000e+03 1.742000e+03 1.742000e+03 \n", "mean 2.826862e-16 -1.948626e-17 -1.574197e-16 8.030316e-17 \n", "std 1.000287e+00 1.000287e+00 1.000287e+00 1.000287e+00 \n", "min -2.391759e+00 -2.793805e+00 -4.215485e+00 -2.281819e+00 \n", "25% -6.969062e-01 -6.683307e-01 -7.701652e-01 -7.060944e-01 \n", "50% -2.006334e-01 2.531469e-02 -1.478245e-01 -1.441053e-01 \n", "75% 4.677538e-01 6.644268e-01 6.412391e-01 5.692530e-01 \n", "max 6.037364e+00 4.584110e+00 4.296243e+00 6.086163e+00 \n", "\n", " delta tempo mfcc0 mfcc2 mfcc3 \\\n", "count 1.742000e+03 1.742000e+03 1.742000e+03 1.742000e+03 1.742000e+03 \n", "mean -1.657049e-18 -7.277314e-16 2.516803e-16 1.325958e-16 7.459908e-17 \n", "std 1.000287e+00 1.000287e+00 1.000287e+00 1.000287e+00 1.000287e+00 \n", "min -1.201451e+01 -2.256250e+00 -1.159683e+01 -4.554401e+00 -4.679039e+00 \n", "25% -4.703116e-01 -7.071379e-01 -6.171237e-01 -6.065826e-01 -3.884310e-01 \n", "50% 1.367321e-02 -2.995879e-03 1.308499e-01 1.638622e-01 1.296066e-02 \n", "75% 5.093852e-01 5.899658e-01 7.070439e-01 7.036774e-01 5.201561e-01 \n", "max 4.617816e+00 2.813572e+00 2.832922e+00 3.292609e+00 4.427734e+00 \n", "\n", " mfcc4 ... mfcc10 mfcc11 mfcc12 \\\n", "count 1.742000e+03 ... 1.742000e+03 1.742000e+03 1.742000e+03 \n", "mean 1.218569e-16 ... -4.336410e-17 9.005426e-17 2.137594e-16 \n", "std 1.000287e+00 ... 1.000287e+00 1.000287e+00 1.000287e+00 \n", "min -4.716782e+00 ... -4.554122e+00 -4.313277e+00 -3.724010e+00 \n", "25% -5.633696e-01 ... -5.776729e-01 -5.288686e-01 -6.170215e-01 \n", "50% 9.521434e-02 ... 6.462766e-02 8.780251e-02 6.371191e-02 \n", "75% 6.215948e-01 ... 6.500392e-01 6.347975e-01 6.379022e-01 \n", "max 3.548240e+00 ... 3.347441e+00 3.335561e+00 3.816506e+00 \n", "\n", " mfcc13 mfcc14 mfcc15 mfcc16 mfcc17 \\\n", "count 1.742000e+03 1.742000e+03 1.742000e+03 1.742000e+03 1.742000e+03 \n", "mean -2.813160e-16 2.272070e-17 1.666609e-16 9.630006e-17 -5.697700e-17 \n", "std 1.000287e+00 1.000287e+00 1.000287e+00 1.000287e+00 1.000287e+00 \n", "min -4.476025e+00 -4.143998e+00 -4.446038e+00 -3.740006e+00 -3.944229e+00 \n", "25% -5.122998e-01 -6.235195e-01 -5.584997e-01 -6.566306e-01 -5.503997e-01 \n", "50% 1.047931e-01 -1.047961e-02 8.270927e-02 -6.043073e-02 3.676296e-02 \n", "75% 6.283661e-01 6.175373e-01 6.396343e-01 5.681474e-01 6.281729e-01 \n", "max 3.189432e+00 6.090517e+00 4.438002e+00 5.312568e+00 4.404748e+00 \n", "\n", " mfcc18 mfcc19 \n", "count 1.742000e+03 1.742000e+03 \n", "mean -1.165511e-16 -9.572646e-17 \n", "std 1.000287e+00 1.000287e+00 \n", "min -4.544111e+00 -3.600761e+00 \n", "25% -6.079892e-01 -5.757751e-01 \n", "50% -5.924763e-02 3.804522e-02 \n", "75% 5.143577e-01 6.135962e-01 \n", "max 5.625806e+00 4.889305e+00 \n", "\n", "[8 rows x 25 columns]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_scaled = pd.DataFrame(Xscaled)\n", "df_scaled.columns = X.columns\n", "df_scaled.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question 3.** Que dire des valeurs de `mean` et `std` maintenant ?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Réponse :*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question 4.** Calculer à nouveau le SpectralEmbedding de ce jeu de données normalisé. Qu'en pensez-vous ?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Bon il n'y a pas forcément de répartition évidente entre les six groupes, mais même si c'est pas évident on dirait quand même qu'il y a une certaine forme de structure, puis on perd pas mal d'information quand on projette ainsi...\n", "\n", "Par la suite, on utilisera la version normalisée de `X`, remplaçons donc la valeur de `X` par son équivalent normalisé :" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "X = scale(X)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Clustering ?\n", "\n", "Imaginons un instant que l'on a que les valeurs de $X$, mais qu'on ignore les labels $y$.\n", "Essayons de faire du clustering :" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "from sklearn.cluster import KMeans" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "kmeans = KMeans(n_clusters=6)\n", "pred_kmeans = kmeans.fit_predict(Xscaled)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(X2scaled[:, 0], X2scaled[:, 1], c=pred_kmeans, cmap=\"Dark2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Aux vues de ce qu'on avait dans la partie précédente, ça n'a pas l'air si convainquant... si vous avez encore du temps à la fin, ou envie d'en apprendre plus, vous pouvez faire le DM sur l'évaluation du clustering, pour voir une façon d'évaluer une méthode de clustering." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "En fait une façon d'évaluer une méthode de clustering est de calculer le score de silhouette.\n", "C'est un score défini à partir de $X$ et des clusters prédits, qui vaut entre $-1$ et $1$, plus il est proche de $-1$ ou $1$, et plus les clusters sont séparés les uns des autres.\n", "En revanche, plus il est proche de $0$, moins le clustering est bon, et plus les clusters se superposent les uns aux autres.\n", "\n", "Par exemple, pour le clustering obtenu ci-dessus, on a :" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.09304312180836477" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.metrics import silhouette_score\n", "\n", "silhouette_score(Xscaled, pred_kmeans)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ce qui est très proche de zéro. On a donc un clustering de bien mauvaise qualité...\n", "\n", "Vous pouvez essayer avec un nombre de clusters différent de $6$ et voir que vous obtenez toujours un résultat similaire.\n", "\n", "Si vous vous ennuyez, vous pouvez faire le DM (bonus et facultatif) sur l'évaluation du clustering, où le but est de calculer un score similaire à la silhouette pour le clustering, et la silhouette si vous avez vraiment rien de mieux à faire." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Prédiction ?\n", "\n", "### Une référence ?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On va commencer par découper le dataset en deux parties, en gardant un tiers de nos données pour vérifier que l'on est pas en train de faire (trop) d'overfitting." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Avant d'aller plus loin, on a besoin d'une référence, d'une notion qui nous permette de savoir si le modèle que l'on a appris a un sens ou pas.\n", "\n", "Pour cela, on va commencer par voir ce qu'il se passe si l'on renvoie un label au hasard, ou si on renvoie tout le temps le label le plus fréquent.\n", "L'objet `DummyClassifier` fonctionne comme `DecisionTree`, on l'entraîne avec la méthode `fit` puis on prédit de nouvelles valeurs avec la méthode `predict`.\n", "\n", "On obtient les scores suivants :" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Prédiction du plus fréquent : 0.1791304347826087\n", "Prédiction au pif : 0.16521739130434782\n" ] } ], "source": [ "from sklearn.dummy import DummyClassifier\n", "\n", "dummy_clf = DummyClassifier(strategy=\"most_frequent\")\n", "dummy_clf.fit(X_train, y_train)\n", "print(\"Prédiction du plus fréquent :\", dummy_clf.score(X_test, y_test))\n", "\n", "\n", "dummy_clf = DummyClassifier(strategy=\"uniform\")\n", "dummy_clf.fit(X_train, y_train)\n", "print(\"Prédiction au pif :\", dummy_clf.score(X_test, y_test))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Donc si on fait moins bien que ça, c'est qu'on a appris un classifieur vraiment inutile.\n", "Si on est au dessus, on a au moins appris un peu." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Arbres de décision ?\n", "\n", "Dans cette partie, on va entraîner des arbres de décision.\n", "Puis on va faire des forêts aléatoires, et on va essayer de trouver les paramètres qui vont bien." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "from sklearn.tree import DecisionTreeClassifier\n", "from sklearn.ensemble import RandomForestClassifier" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Voilà une fonction de score qui renvoie la proportion de bonnes prédictions sur un ensemble :" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "def score(clf, X, y):\n", " pred = clf.predict(X)\n", " return np.mean(pred == y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question 5.** Entraînez un arbre de décision `DecisionTreeClassifier` sur les données d'entraînement et affichez son score de prédiction sur les datasets d'entraînement et de test. Que constatez-vous ? Est-ce normal ?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question 6.** Faites varier la profondeur maximale de l'arbre en changeant le paramètre `max_depth` et calculez le score en entrainement et en test. Que constatez-vous ?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": false }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question 7.** Entraînez une forête aléatoire `RandomForestClassifier` sur les données d'entraînement et affichez son score de prédiction sur les datasets d'entraînement et de test." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question 8.** Faites varier les paramètres `n_estimators` et `max_depth` de `RandomForestClassifier`, et renvoyez les paramètres qui marchent le mieux en test.\n", "\n", "*Remarque :* vous utiliserez deux boucles imbriquées les unes dans les autres pour faire varier les deux paramètres en même temps." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cross Validation\n", "\n", "En fait, en procédant comme on l'a fait à la question précédente, on apprend un classifieur biaisé.\n", "En effet, on choisit les paramètres pour lesquels la performance en test est la meilleure, donc, à force, si on cherche parmi beaucoup de paramètres, un risque important est celui de faire de l'overfitting sur les données de test.\n", "\n", "Pour éviter cela, on va mettre de côté l'ensemble de test pour l'instant, et utiliser l'ensemble d'entraînement à la fois comme ensemble d'entrainement **et de test**.\n", "\n", "On divise donc à nouveau notre ensemble d'entraînement en deux parties : \n", "* un sous-ensemble d'entraînement (plus petit donc) ;\n", "* un sous-ensemble **de validation**.\n", "\n", "Ainsi, on va pouvoir entraîner notre modèle sur ce sous-ensemble d'entraînement, puis valider sa performance sur le sous-ensemble de validation.\n", "On va donc utiliser le sous-ensemble de validation comme à la question précédente.\n", "\n", "Et en fait, on peut même faire un petit peu mieux : on peut choisir plusieurs découpages de cet ensemble d'entraînement différents (par exemple en prenant 2/3 des points au hasard pour l'entraînement et 1/3 pour la validation, puis en recommençant ainsi plusieurs fois, on obtient plusieurs découpages différents de notre ensemble).\n", "Cela permet d'entraîner notre modèle sur chacun de ces sous-ensembles, puis d'évaluer leur performance sur chacun des sous-ensembles de validation, donnant un estimateur plus stable de l'erreur, et donc un choix plus stable des hyperparamètres.\n", "\n", "C'est ce qu'on appelle la **cross-validation**.\n", "\n", "Enfin, une fois que l'on a entraîné nos modèles de cette façon là, on peut regarder le résultats sur les données de test, pour avoir une **estimation** de l'erreur en test." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La fonction `cross_validate` permet de faire ces opérations sans avoir à tout réimplémenter.\n", "Par exemple, pour voir le résultat d'un classifieur sur $5$ découpages différents de notre ensemble, on peut procéder ainsi :" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'fit_time': array([0.02041817, 0.01682687, 0.0170908 , 0.01545501, 0.01597548]),\n", " 'score_time': array([0.00094748, 0.00055718, 0.00055718, 0.00047565, 0.00044656]),\n", " 'test_score': array([0.64529915, 0.58119658, 0.4806867 , 0.57081545, 0.53648069]),\n", " 'train_score': array([1. , 0.99892819, 1. , 0.99892934, 0.99892934])}" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.model_selection import cross_validate\n", "\n", "clf = DecisionTreeClassifier()\n", "\n", "cross_validate(clf, X_train, y_train, \n", " return_train_score=True, cv=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Remarque importante :** la fonction `cross_validate` renvoie les scores en entraînement dans `train_score` et les scores **en validation** dans `test_score`, car pour lui, c'est un jeu de données de test." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question 9.** Comme à la question précédente, entraînez un arbre de décision avec différentes valeurs de `max_depth`, puis prenez celui qui obtient le meilleur score moyen en validation." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question 10.** Évaluez maintenant la performance sur les données de test, que vous n'avez normalement pas touchées jusqu'ici. Commentez la différence avec le score en validation." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }